Systems and method for third party natural language understanding service integration

ABSTRACT

A virtual agent that utilizes an in-house natural language understanding (NLU) service and integrates a third party NLU service. The third-party NLU service is integrated with the virtual agent via a transformation script that establishes a transformation boundary through which communications are directed for adjustment and conditioning. The third party NLU service communicates with the virtual agent via an application programming interface (API). The virtual agent receives an utterance from a user via a chat session and provides the utterance to the third party NLU service. The third party NLU service may return intents, entities, and confidence, generate and return a response, and/or take actions within the cloud-based platform via the API, dependent upon the degree of integration. The virtual agent then provides a response to the user via the chat session.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority from and the benefit of U.S.Provisional Application Ser. No. 62/820,730, entitled “SYSTEMS ANDMETHOD FOR THIRD PARTY NATURAL LANGUAGE UNDERSTANDING SERVICEINTEGRATION,” filed Mar. 19, 2019, which is hereby incorporated byreference in its entirety for all purposes.

BACKGROUND

The present disclosure relates generally to natural languageunderstanding (NLU) services and, more specifically, to integratingthird party NLU services into a chat service.

This section is intended to introduce the reader to various aspects ofart that may be related to various aspects of the present disclosure,which are described and/or claimed below. This discussion is believed tobe helpful in providing the reader with background information tofacilitate a better understanding of the various aspects of the presentdisclosure. Accordingly, it should be understood that these statementsare to be read in this light, and not as admissions of prior art.

Organizations, regardless of size, rely upon access to informationtechnology (IT), data, and services for their continued operation andsuccess. A respective organization's IT infrastructure may haveassociated hardware resources (e.g., computing devices, load balancers,firewalls, switches) and/or software resources (e.g., productivitysoftware, database applications, custom applications). Over time, moreand more organizations have turned to cloud computing approaches tosupplement or enhance their IT infrastructure solutions.

Cloud computing relates to sharing computing resources via the Internet.In particular, a cloud computing infrastructure enables users (e.g.,individuals, enterprises) to access a shared pool of computing resources(e.g., servers, storage devices, networks, applications, other computingbased services). By doing so, users are able to access computingresources on demand that may be located at remote locations. Theseresources may be used to perform a variety computing functions (e.g.,storing and/or processing large quantities of computing data). Forenterprise and other organization users, cloud computing providesflexibility in accessing resources, without accruing large up-frontcosts, such as purchasing expensive network equipment or investing largeamounts of time in establishing a private network infrastructure.Instead, by utilizing cloud computing resources, users are able redirecttheir resources to focus on their enterprise's core functions.

In modern communication networks, examples of cloud computing servicesinclude infrastructure as a service (IaaS), software as a service(SaaS), and platform as a service (PaaS) technologies. IaaS is a modelin which providers abstract away the complexity of hardwareinfrastructure and provide rapid, simplified provisioning of virtualservers and storage, giving enterprises access to computing capacity ondemand. In such an approach, however, a user may be left to install andmaintain platform components and applications. SaaS is a delivery modelthat provides software as a service rather than an end product. Insteadof utilizing a local network or individual software installations,software may be licensed on a subscription basis, hosted on a remotemachine, and accessed by client customers as needed. For example, usersare generally able to access a variety of enterprise and/or IT-relatedsoftware via a web browser. PaaS acts as an extension of SaaS that goesbeyond providing software services by offering customizability andexpandability features to meet a user's needs. For example, PaaS canprovide a cloud-based developmental platform for users to develop,modify, and/or customize applications and/or automating enterpriseoperations, without maintaining network infrastructure and/or allocatingcomputing resources normally associated with these functions.

Customers of certain IaaS, SaaS, and/or PaaS providers may offer anautomated chat service, such as a chat bot or a virtual agent, to theirend-users to facilitate efficient performance of their respective corefunctions. For example, the virtual agent that a customer offers toend-users may assist with password issues, updating profiles, placingorders, scheduling meetings, and so forth, thereby enabling personnelemployed by the customer to focus on performing more high-value tasks.In some situations, the virtual agent is part of a Natural LanguageProcessing (NLP) or NLU system. NLP is a general area of computerscience and artificial intelligence (AI) that involves some form ofprocessing of natural language input. Examples of areas addressed by NLPinclude language translation, speech generation, parse tree extraction,part-of-speech identification, and others. NLU is a sub-area of NLP thatspecifically focuses on understanding user utterances. Examples of areasaddressed by NLU include question-answering (e.g., reading comprehensionquestions), article summarization, and others. For example, a NLU systemmay use algorithms to reduce human language (e.g., spoken or written)into a set of known symbols for consumption by a downstream virtualagent.

Certain third parties, which may be external to the customers and/orproviders of IaaS, SaaS, and/or PaaS, may also offer NLU services thatare capable of extracting meaning from user utterances. These thirdparty NLU services may be particularly adept at performing certainaspects of NLU or may provide desirable features. As such, in somecases, a customer of a provider may prefer to use a third party NLUservice (or aspects thereof) to complement, supplement, or replace theautomated, native chat service offered by the provider. However, such anintegration may be a tedious, time-consuming process that may limitcustomer satisfaction or performance of the third party NLU service. Assuch, there is a need to facilitate integration of native chat servicesof providers with third party NLU services to meet customer demand.

SUMMARY

A summary of certain embodiments disclosed herein is set forth below. Itshould be understood that these aspects are presented merely to providethe reader with a brief summary of these certain embodiments and thatthese aspects are not intended to limit the scope of this disclosure.Indeed, this disclosure may encompass a variety of aspects that may notbe set forth below.

The disclosed subject matter includes various techniques for integratinga third party NLU service into a virtual agent, which utilizes anin-house NLU service associated with a cloud-based platform thatsupports the virtual agent. The third party NLU service may communicatewith the virtual agent via an application programming interface (API).Additionally, a transformation script may be used to configure the thirdparty NLU service to seamlessly operate with the virtual agent, such asby defining one or more suitable transformation layers through whichcommunications to and from the third party NLU service are directed.Indeed, as may be understood, the transformation layers facilitateappropriate communications between, and integration of, the virtualagent and the third party NLU service. For example, when the virtualagent receives an utterance from a user via a chat session, the virtualagent may condition or process the utterance for submittal to the thirdparty NLU service via an input transformation layer. Relative to theoriginal utterance, the conditioned utterance may be abstracted,cleansed, or otherwise modified by the input transformation layer into aform that is efficiently interpretable by the third party NLU service.

After submitting the utterance through the input transformation layer tothe third party NLU service, the virtual agent may direct a reply fromthe third party NLU service through an output transformation layer,which may condition or adapt the reply for consumption or utilization bythe virtual agent. The input and output transformation layers may beestablished via a transformation script that suitably integrates thethird party NLU service with the virtual agent. As discussed below, atype of the reply that the third party NLU service returns through theoutput transformation layer and to the virtual agent may depend on auser-selectable degree on integration between the third party NLUservice and the virtual agent. For example, in some embodiments, thethird party NLU service may return intents, entities, and confidencescores extracted from the utterance to the virtual agent, thereforeenabling the virtual agent to generate a response to the utterance viathe in-house NLU service. In other, more integrated embodiments, thethird party NLU service may go as far as generating a response and/ortaking actions within a computing environment of the cloud-basedplatform, such as via the API. In either case, the virtual agent thenprovides a response to the user via the chat session, therebyefficiently reacting to utterances via operations supplemented by theintegrated third party NLU service.

Various refinements of the features noted above may exist in relation tovarious aspects of the present disclosure. Further features may also beincorporated in these various aspects as well. These refinements andadditional features may exist individually or in any combination. Forinstance, various features discussed below in relation to one or more ofthe illustrated embodiments may be incorporated into any of theabove-described aspects of the present disclosure alone or in anycombination. The brief summary presented above is intended only tofamiliarize the reader with certain aspects and contexts of embodimentsof the present disclosure without limitation to the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

Various aspects of this disclosure may be better understood upon readingthe following detailed description and upon reference to the drawings inwhich:

FIG. 1 is a block diagram of an embodiment of a multi-instance cloudarchitecture in which embodiments of the present disclosure may operate;

FIG. 2 is a schematic diagram of an embodiment of a multi-instance cloudarchitecture in which embodiments of the present disclosure may operate;

FIG. 3 is a block diagram of a computing system utilized in thearchitecture of FIG. 1 or 2, in accordance with aspects of the presentdisclosure;

FIG. 4 is a block diagram illustrating an embodiment in which a virtualserver supports and provides a virtual agent to a client instance ofFIG. 2, in accordance with aspects of the present disclosure;

FIG. 5 is a block diagram illustrating an embodiment of a third partyNLU service integrated with the virtual agent of FIG. 4, in accordancewith aspects of the present disclosure;

FIG. 6 is a flow chart illustrating an embodiment of a process by whichthe integrated third party NLU service of FIG. 5 facilitates a chatconversation by generating intents, entities, and confidence scores fromuser utterances, in accordance with aspects of the present disclosure;

FIG. 7 is a block diagram illustrating the third party NLU serviceintegrated with the virtual agent of FIG. 4 such that the third partyNLU service generates responses to user utterances, in accordance withaspects of the present disclosure;

FIG. 8 is a flow chart illustrating an embodiment of a process by whichthe integrated third party NLU service of FIG. 7 facilitates a chatconversation by generating responses to the user utterances, inaccordance with aspects of the present disclosure;

FIG. 9 is a flow chart illustrating an embodiment of a process fortoggling between the third party NLU service generating the response andan in-house NLU service generating the response, such as based on a typeof conversation being conducted, in accordance with aspects of thepresent disclosure; and

FIG. 10 is an embodiment of a user interface screen by which a customermay select the third party NLU service to be integrated with the virtualagent of FIG. 4, in accordance with aspects of the present disclosure.

DETAILED DESCRIPTION

One or more specific embodiments will be described below. In an effortto provide a concise description of these embodiments, not all featuresof an actual implementation are described in the specification. Itshould be appreciated that in the development of any such actualimplementation, as in any engineering or design project, numerousimplementation-specific decisions must be made to achieve thedevelopers' specific goals, such as compliance with system-related andenterprise-related constraints, which may vary from one implementationto another. Moreover, it should be appreciated that such a developmenteffort might be complex and time consuming, but would nevertheless be aroutine undertaking of design, fabrication, and manufacture for those ofordinary skill having the benefit of this disclosure.

As used herein, the term “computing system” refers to an electroniccomputing device such as, but not limited to, a single computer, virtualmachine, virtual container, host, server, laptop, and/or mobile device,or to a plurality of electronic computing devices working together toperform the function described as being performed on or by the computingsystem. As used herein, the term “medium” refers to one or morenon-transitory, computer-readable physical media that together store thecontents described as being stored thereon. Embodiments may includenon-volatile secondary storage, read-only memory (ROM), and/orrandom-access memory (RAM). As used herein, the term “application”refers to one or more computing modules, programs, processes, workloads,threads, and/or a set of computing instructions executed by a computingsystem. Example embodiments of applications include software modules,software objects, software instances, and/or other types of executablecode.

As used herein, an “utterance” refers to a string of natural languagetext received from a user. As used herein, a “conversation” refers to anexchange of natural language requests and responses between a user and avirtual agent via a particular conversational channel or medium (e.g.,chat rooms, email, forum posts, and so forth). A non-limiting list ofexample utterances includes chat entries, email subjects, incidentdescriptions, and so forth, though it should be understood that verbalor spoken utterances may also be utilized by the present techniques. Asused herein, an “intent” refers to something indicated in an utterancethat a user wants to achieve or accomplish, such as an underlying goalor desire of the user. As used herein, an “entity” refers to a portionof an utterance that is the subject, object, context, and/or some otherparameterization of an intent. For example, in a user utterance “pleaseupdate my password,” “password” may be identified as an entityassociated with an intent of “update.” As used herein, a “virtual agent”refers to an application that is associated with an in-house naturallanguage understanding (NLU) service and that is configured to receiveand suitably respond to user utterances based on the intents andentities identified in user utterances within a conversational channel.As used herein, an “in-house NLU service” refers to a service that hoststhe virtual agent and is native to a provider associated with acloud-based platform, while a “third party NLU service” refers to aservice that is distinct or independent from the in-house NLU servicethat hosts the virtual agent.

Present embodiments are directed to systems and methods that facilitateintegration of a third party NLU service into a virtual agent. Thevirtual agent may utilize an in-house NLU service associated with acloud-based platform that supports the virtual agent, which maycommunicate with the third party NLU service through an applicationprogramming interface (API). To configure the third party NLU service toefficiently supplement operations of the virtual agent, presentembodiments provide one or multiple transformation scripts that defineany suitable number of transformation layers. As discussed below, thetransformation layers may operate as communication conditioners betweenthe third party NLU service and the virtual agent. For example, thetransformation scripts may provide an input transformation layer throughwhich the virtual agent directs user utterances, as well as an outputtransformation layer through which the virtual agent receives responsesfrom the third party NLU service. The transformation layers maycondition, process, or reformat the communications between the virtualagent and the third party NLU service, such as via abstraction,cleansing, parsing, and so forth.

Moreover, a degree of integration, as well as the particular third partyNLU service, may be individually selected by a customer that providesthe virtual agent to users. For example, depending on the degree ofintegration of the third party NLU service with the in-house NLUservice, the third party NLU service may either return intents,entities, and confidence scores extracted from the user utterances tothe virtual agent, or, alternatively, generate a response and/or takeactions within the cloud-based platform. In either case, the virtualagent may provide a response to the user, thereby efficiently reactingto utterances via operations supplemented by the integrated third partyNLU service to improve the overall experience of the user wheninteracting with the virtual agent.

With the preceding in mind, the following figures relate to varioustypes of generalized system architectures or configurations that may beemployed to provide services to an organization in a multi-instanceframework and on which the present approaches may be employed.Correspondingly, these system and platform examples may also relate tosystems and platforms on which the techniques discussed herein may beimplemented or otherwise utilized. Turning now to FIG. 1, a schematicdiagram of an embodiment of a cloud computing system 10, whereembodiments of the present disclosure may operate, is illustrated. Thecloud computing system 10 may include a client network 12, a network 14(e.g., the Internet), and a cloud-based platform 16. In someimplementations, the cloud-based platform 16 may be a configurationmanagement database (CMDB) platform. In one embodiment, the clientnetwork 12 may be a local private network, such as local area network(LAN) having a variety of network devices that include, but are notlimited to, switches, servers, and routers. In another embodiment, theclient network 12 represents an enterprise network that could includeone or more LANs, virtual networks, data centers 18, and/or other remotenetworks. As shown in FIG. 1, the client network 12 is able to connectto one or more client devices 20A, 20B, and 20C so that the clientdevices are able to communicate with each other and/or with the networkhosting the platform 16. The client devices 20 may be computing systemsand/or other types of computing devices generally referred to asInternet of Things (IoT) devices that access cloud computing services,for example, via a web browser application or via an edge device 22 thatmay act as a gateway between the client devices 20 and the platform 16.FIG. 1 also illustrates that the client network 12 includes anadministration or managerial device or server, such as a management,instrumentation, and discovery (MID) server 24 that facilitatescommunication of data between the network hosting the platform 16, otherexternal applications, data sources, and services, and the clientnetwork 12. Although not specifically illustrated in FIG. 1, the clientnetwork 12 may also include a connecting network device (e.g., a gatewayor router) or a combination of devices that implement a customerfirewall or intrusion protection system.

For the illustrated embodiment, FIG. 1 illustrates that client network12 is coupled to a network 14. The network 14 may include one or morecomputing networks, such as other LANs, wide area networks (WAN), theInternet, and/or other remote networks, to transfer data between theclient devices 20 and the network hosting the platform 16. Each of thecomputing networks within network 14 may contain wired and/or wirelessprogrammable devices that operate in the electrical and/or opticaldomain. For example, network 14 may include wireless networks, such ascellular networks (e.g., Global System for Mobile Communications (GSM)based cellular network), IEEE 802.11 networks, and/or other suitableradio-based networks. The network 14 may also employ any number ofnetwork communication protocols, such as Transmission Control Protocol(TCP) and Internet Protocol (IP). Although not explicitly shown in FIG.1, network 14 may include a variety of network devices, such as servers,routers, network switches, and/or other network hardware devicesconfigured to transport data over the network 14.

In FIG. 1, the network hosting the platform 16 may be a remote network(e.g., a cloud network) that is able to communicate with the clientdevices 20 via the client network 12 and network 14. The network hostingthe platform 16 provides additional computing resources to the clientdevices 20 and/or the client network 12. For example, by utilizing thenetwork hosting the platform 16, users of the client devices 20 are ableto build and execute applications for various enterprise, IT, and/orother organization-related functions. In one embodiment, the networkhosting the platform 16 is implemented on the one or more data centers18, where each data center could correspond to a different geographiclocation. Each of the data centers 18 includes a plurality of virtualservers 26 (also referred to herein as application nodes, applicationservers, virtual server instances, application instances, or applicationserver instances), where each virtual server 26 can be implemented on aphysical computing system, such as a single electronic computing device(e.g., a single physical hardware server) or across multiple-computingdevices (e.g., multiple physical hardware servers). Examples of virtualservers 26 include, but are not limited to a web server (e.g., a unitaryApache installation), an application server (e.g., unitary JAVA VirtualMachine), and/or a database server (e.g., a unitary relational databasemanagement system (RDBMS) catalog).

To utilize computing resources within the platform 16, network operatorsmay choose to configure the data centers 18 using a variety of computinginfrastructures. In one embodiment, one or more of the data centers 18are configured using a multi-tenant cloud architecture, such that one ofthe server instances 26 handles requests from and serves multiplecustomers. Data centers 18 with multi-tenant cloud architecturecommingle and store data from multiple customers, where multiplecustomer instances are assigned to one of the virtual servers 26. In amulti-tenant cloud architecture, the particular virtual server 26distinguishes between and segregates data and other information of thevarious customers. For example, a multi-tenant cloud architecture couldassign a particular identifier for each customer in order to identifyand segregate the data from each customer. Generally, implementing amulti-tenant cloud architecture may suffer from various drawbacks, suchas a failure of a particular one of the server instances 26 causingoutages for all customers allocated to the particular server instance.

In another embodiment, one or more of the data centers 18 are configuredusing a multi-instance cloud architecture to provide every customer itsown unique customer instance or instances. For example, a multi-instancecloud architecture could provide each customer instance with its owndedicated application server and dedicated database server. In otherexamples, the multi-instance cloud architecture could deploy a singlephysical or virtual server 26 and/or other combinations of physicaland/or virtual servers 26, such as one or more dedicated web servers,one or more dedicated application servers, and one or more databaseservers, for each customer instance. In a multi-instance cloudarchitecture, multiple customer instances could be installed on one ormore respective hardware servers, where each customer instance isallocated certain portions of the physical server resources, such ascomputing memory, storage, and processing power. By doing so, eachcustomer instance has its own unique software stack that provides thebenefit of data isolation, relatively less downtime for customers toaccess the platform 16, and customer-driven upgrade schedules. Anexample of implementing a customer instance within a multi-instancecloud architecture will be discussed in more detail below with referenceto FIG. 2.

FIG. 2 is a schematic diagram of an embodiment of a multi-instance cloudarchitecture 100 where embodiments of the present disclosure mayoperate. FIG. 2 illustrates that the multi-instance cloud architecture100 includes the client network 12 and the network 14 that connect totwo (e.g., paired) data centers 18A and 18B that may be geographicallyseparated from one another. Using FIG. 2 as an example, networkenvironment and service provider cloud infrastructure client instance102 (also referred to herein as a client instance 102) is associatedwith (e.g., supported and enabled by) dedicated virtual servers (e.g.,virtual servers 26A, 26B, 26C, and 26D) and dedicated database servers(e.g., virtual database servers 104A and 104B). Stated another way, thevirtual servers 26A-26D and virtual database servers 104A and 104B arenot shared with other client instances and are specific to therespective client instance 102. In the depicted example, to facilitateavailability of the client instance 102, the virtual servers 26A-26D andvirtual database servers 104A and 104B are allocated to two differentdata centers 18A and 18B so that one of the data centers 18 acts as abackup data center. Other embodiments of the multi-instance cloudarchitecture 100 could include other types of dedicated virtual servers,such as a web server. For example, the client instance 102 could beassociated with (e.g., supported and enabled by) the dedicated virtualservers 26A-26D, dedicated virtual database servers 104A and 104B, andadditional dedicated virtual web servers (not shown in FIG. 2).

Although FIGS. 1 and 2 illustrate specific embodiments of a cloudcomputing system 10 and a multi-instance cloud architecture 100,respectively, the disclosure is not limited to the specific embodimentsillustrated in FIGS. 1 and 2. For instance, although FIG. 1 illustratesthat the platform 16 is implemented using data centers, otherembodiments of the platform 16 are not limited to data centers and canutilize other types of remote network infrastructures. Moreover, otherembodiments of the present disclosure may combine one or more differentvirtual servers into a single virtual server or, conversely, performoperations attributed to a single virtual server using multiple virtualservers. For instance, using FIG. 2 as an example, the virtual servers26A, 26B, 26C, 26D and virtual database servers 104A, 104B may becombined into a single virtual server. Moreover, the present approachesmay be implemented in other architectures or configurations, including,but not limited to, multi-tenant architectures, generalizedclient/server implementations, and/or even on a single physicalprocessor-based device configured to perform some or all of theoperations discussed herein. Similarly, though virtual servers ormachines may be referenced to facilitate discussion of animplementation, physical servers may instead be employed as appropriate.The use and discussion of FIGS. 1 and 2 are only examples to facilitateease of description and explanation and are not intended to limit thedisclosure to the specific examples illustrated therein.

As may be appreciated, the respective architectures and frameworksdiscussed with respect to FIGS. 1 and 2 incorporate computing systems ofvarious types (e.g., servers, workstations, client devices, laptops,tablet computers, cellular telephones, and so forth) throughout. For thesake of completeness, a brief, high level overview of componentstypically found in such systems is provided. As may be appreciated, thepresent overview is intended to merely provide a high-level, generalizedview of components typical in such computing systems and should not beviewed as limiting in terms of components discussed or omitted fromdiscussion.

By way of background, it may be appreciated that the present approachmay be implemented using one or more processor-based systems, such asthose shown in FIG. 3. Likewise, applications and/or databases utilizedin the present approach may be stored, employed, and/or maintained onsuch processor-based systems. As may be appreciated, such systems asshown in FIG. 3 may be present in a distributed computing environment, anetworked environment, or other multi-computer platform or architecture.Likewise, systems such as that shown in FIG. 3, may be used insupporting or communicating with one or more virtual environments orcomputational instances on which the present approach may beimplemented.

With this in mind, an example computer system may include some or all ofthe computer components depicted in FIG. 3. FIG. 3 generally illustratesa block diagram of example components of a computing system 200 andtheir potential interconnections or communication paths, such as alongone or more busses. As illustrated, the computing system 200 may includevarious hardware components such as, but not limited to, one or moreprocessors 202, one or more busses 204, memory 206, input devices 208, apower source 210, a network interface 212, a user interface 214, and/orother computer components useful in performing the functions describedherein.

The one or more processors 202 may include one or more microprocessorscapable of performing instructions stored in the memory 206.Additionally or alternatively, the one or more processors 202 mayinclude application-specific integrated circuits (ASICs),field-programmable gate arrays (FPGAs), and/or other devices designed toperform some or all of the functions discussed herein without callinginstructions from the memory 206.

With respect to other components, the one or more busses 204 includesuitable electrical channels to provide data and/or power between thevarious components of the computing system 200. The memory 206 mayinclude any tangible, non-transitory, and computer-readable storagemedia. Although shown as a single block in FIG. 1, the memory 206 can beimplemented using multiple physical units of the same or different typesin one or more physical locations. The input devices 208 correspond tostructures to input data and/or commands to the one or more processors202. For example, the input devices 208 may include a mouse, touchpad,touchscreen, keyboard, and the like. The power source 210 can be anysuitable source for power of the various components of the computingsystem 200, such as line power and/or a battery source. The networkinterface 212 includes one or more transceivers capable of communicatingwith other devices over one or more networks (e.g., a communicationchannel). The network interface 212 may provide a wired networkinterface or a wireless network interface. A user interface 214 mayinclude a display that is configured to display text or imagestransferred to it from the one or more processors 202. In additionand/or alternative to the display, the user interface 214 may includeother devices for interfacing with a user, such as lights (e.g., LEDs),speakers, and the like.

FIG. 4 illustrates an example of a portion of a service provider cloudinfrastructure, including the cloud-based platform 16 discussed above.The cloud-based platform 16 is connected to a client device 20 via thenetwork 14 to provide a user interface to network applications executingwithin the client instance 102 (e.g., via a web browser of the clientdevice 20). Cloud provider infrastructures are generally configured tosupport a plurality of end-user devices, such as client device 20,concurrently, wherein each end-user device is in communication with thesingle client instance 102. Also, cloud provider infrastructures may beconfigured to support any number of client instances, such as clientinstance 102, concurrently, with each of the instances in communicationwith one or more end-user devices. As mentioned above, an end-user mayalso interface with client instance 102 using an application that isexecuted within a web browser.

For the illustrated embodiment, the client instance 102 iscommunicatively coupled to a shared instance 220 of the cloud-basedplatform 16. The shared instance 220 hosts a NLU service 222 that may beused by any suitable number of client instances to provide NLUfacilities or functionality. For example, in certain embodiments, theNLU service 222 is capable of analyzing a collection or corpus ofutterances (e.g., chat sessions, email exchanges, forum posts) stored bythe database server 104 of the client instance 102 to generate one ormore NLU models 224, which may be compiled to form suitableintent-entity models. In other embodiments, the NLU models 224 may bemanually created by a developer or designer. As used herein, a “NLUmodel” is a collection of intents and entities that are definedalongside annotated, sample utterances of these intents and entities.For example, a “purchase product” intent of the NLU model may beassociated with one or more sample utterances that each have one or morelabeled entities belonging to the intent, such as a “brand” entity, a“model” entity, a “color” entity, a “size” entity, a “shipping address”entity, and so forth, depending on the nature of the product. The NLUmodels 224 may be vector space representations of intents and entitiesthat the NLU service 222 uses as a reference for identifying orinferring intents and entities in newly received utterances. In certainembodiments, these generated NLU models 224 may be stored by thedatabase server 104 of the client instance 102, as illustrated in FIG.4. It may be appreciated that, in other embodiments, the NLU service 222may be an external service that is communicatively coupled to the clientinstance 102 via the network 14.

For the illustrated embodiment, the client instance 102 includes avirtual agent 225 that is designed to receive natural language requestsas utterances 226 from a user of the client device 20 and to respondaccordingly. In certain cases, the responding virtual agent 225 mayperform actions within the client instance 102 and/or provide a response228 or confirmation message to the user of the client device 20. Theutterance 226 and/or the response 228 may be in the form of a writtennatural language request or communication, such as chat messages, emailmessages, forum posts, and so forth. Additionally, the client instance102 includes a NLU interface application programming interface (API) 230that enables the client instance 102 to provide received utterances 226and NLU models 224 to the NLU service 222 for processing. Upon receipt,the NLU service 222 searches the NLU models 224 for intents and/orentities indicated in the utterance 226, such as based on the sampleutterances stored in the NLU models 224. In response, the NLU service222 may provide a scored set (e.g., a list or table) of intents andentities identified in the utterance 226 to the virtual agent 225,wherein the scored set of intents and entities includes correspondingconfidence scores for each of the identified intents and/or entities.The virtual agent may therefore 225 be designed to execute particularflows (e.g., topic flows, conversational flows) in response to certainintents and/or entities being identified in the utterance 226 at variouspoints in the conversation.

Moreover, in some cases, a customer may wish to use a third party NLUservice to complement, supplement, or replace the NLU service 222 thatis native to the cloud-based platform 16 when providing automated chatservices to one or more users. For example, in situations in which acustomer is first joining the cloud-based platform 16 and alreadyfamiliar with a particular third party NLU service, the customer maydesire to retain the ability to access certain features or interact in asimilar way with the particular third party NLU service. Accordingly,the service provider cloud infrastructure may be designed to integrate athird party NLU service therein to complement, supplement, or replacethe NLU service 222, which is also referred to herein as a native orin-house NLU service 222. As discussed below, the present techniques maytherefore integrate operation of the third party NLU service with thevirtual agent 225 within a cohesive electronic environment, such thatthe customer is able to efficiently deliver impactful solutions toend-users from within a single client instance 102.

FIG. 5 illustrates a third party NLU service 250 integrated with thevirtual agent 225 of the cloud-based platform 16 to form an integratedNLU service system 251. As shown, the virtual agent 225 includes anintent-entity resolver 252, which has access to (e.g., iscommunicatively coupled to) the in-house NLU service 222, as well as thethird party NLU service 250. For example, the intent-entity resolver 252may include connectors 254 or drivers for the third party NLU service250 that enable communications therebetween, such as by providing one ormore APIs. The third party NLU service 250 may include any suitable NLUservices or systems that may augment operation of the in-house NLUservice 222 and/or the cloud-based platform 16 thereof. For example, thethird party NLU service 250 may include PARLO, IBM WATSON, MICROSOFTLUIS, GOOGLE BERT, AMAZON ALEXA, etc. In some embodiments, one of theconnectors 254 may be included within the intent-entity resolver 252 foreach particular third party NLU service 250 that may be integrated withthe in-house NLU service 222. In other embodiments, a single connector254 may enable the virtual agent 225 to communicate with multiple thirdparty NLU services 250. The intent-entity resolver 252 may also includeor be coupled to any additional components that enable the virtual agent225 to interface with the third party NLU service 250, such as adatabase storing user credentials for the APIs that enable authorizedaccess to the third party NLU service 250.

In some embodiments, customers may desire to utilize NLU processingfeatures of the third party NLU service 250, while maintainingconversation design functionality within a same environment as thevirtual agent 225. As such, in the present embodiment of the integratedNLU service system 251, the third party NLU service 250 has a lesserdegree of integration with the virtual agent 225, compared to certainembodiments having greater degrees of integration and discussed in moredetail below. Therefore, the third party NLU service 250 may extract aset 260 of intents, entities, and/or confidence scores from theutterances 226 received from the user and provide the set 260 ofintents, entities, and/or confidence scores to the virtual agent 225. Asmentioned above, the confidence scores may be used to score the intentsand/or entities of the set 260, thereby forming a scored or ranked setof intents and/or entities. Indeed, from the utterances 226, the thirdparty NLU service 250 may rank each intent and any correspondingentities thereof with a respective confidence score that indicates alikelihood of correspondence to the originating utterance 226.

As presently recognized, a transformation script 270 (e.g.,transformation program) of the intent-entity resolver 252 may be used toconfigure the third party NLU service 250 for use with the virtual agent225 at any desired degree of integration. Indeed, for rapid onboarding,the virtual agent 225 may be integrated with any suitable third partyNLU service 250 by defining the transformation script 270 to resolve anydifferences in communication between the virtual agent 225 and the thirdparty NLU service 250. For example, the transformation script 270 maydefine a transformation boundary 272, having one or more transformationlayers discussed below, that enables the virtual agent 225 to performprocessing or adjustment on communications between the virtual agent 225and the third party NLU service 250. Indeed, the transformation boundary272 may map the one or more intents and the one or more entities of theset 260 to a model, such as a language model and/or the NLU models 224discussed above.

In some embodiments, the transformation script 270 includes multiplecode portions, which are each individually tailored or constructed toprovide a respective transformation layer that enables the virtual agent225 to perform a conditioning process on communications in response toidentifying a particular feature in a communication. As such, thevirtual agent 225 of certain embodiments receives the utterance 226 froma chat window 274 associated with a chat session of the client instance102. Then, the virtual agent 225 provides the utterance 226 through thetransformation boundary 272 and to the third party NLU service 250, suchas via one of the APIs. In other words, the transformation boundary 272may enable the virtual agent 225 to perform processing or pre-processingon the utterance 226 before it is provided to the third party NLUservice 250, thereby adjusting the utterance 226 for efficientconsumption by the third party NLU service 250.

Although sometimes described as passing communications through thetransformation boundary 272, it should be understood that the virtualagent 225 (e.g., or any suitable virtual or physical processingcomponents thereof) may include the transformation boundary 272 thereinand perform the conditioning processes of the transformation boundary272 discussed below. Moreover, certain embodiments may utilize orcompile the transformation script 270 to generate or establish thetransformation boundary 272 as or within a processing entity that isdistinct from, and communicatively coupled to, the virtual agent 225.

Focusing now on the third party NLU service 250, the third party NLUservice 250 may then leverage its processing techniques to extract anyintents and entities from the processed utterance 226, as well as togenerate confidence scores for the extracted intents and entities. Inthe illustrated example, the third party NLU service 250 may include anintent and entity editor 280, NLU model training 282, language support284, and so forth. In the present embodiment, the intent and entityeditor 280 and the NLU model training 282 of the third party NLU service250 may interoperate to generate the set 260 of intents, entities, andconfidence scores, such that the language support 284 for generatingparticular responses is not utilized. It should be understood that thethird party NLU service 250 may include any suitable components thatfacilitate efficient intent and/or entity extraction or identification.Moreover, in some embodiments, the third party NLU service 250 maycentrally manage conversation logic for the user to provide cohesiveintent resolution. The third party NLU service 250 may then provide theset 260 of intents, entities, and confidence scores to the virtual agent225 through the transformation boundary 272, which may condition,process, or otherwise translate the set 260 for more efficientutilization by the virtual agent 225.

As discussed above with reference to FIG. 4, the virtual agent 225 maythen implement the in-house NLU service 222 and virtual agent flows 290of the virtual agent 225 to generate the response 288 based on the set260 of intents, entities, and confidence scores. The virtual agent flows290 may include any suitable topic flows, scripts, or processes that thevirtual agent 225 may execute in response to intents identified by thethird party NLU service 250. For example, the virtual agent flows 290may each be designed to enable the virtual agent 225 to perform one ormore actions to address a particular topic or intent provided by a user,such as by scheduling a delivery or meeting, ordering a product,accessing a particular computing environment, updating profileinformation, monitoring a status of a process, and so forth. Based onidentification of a virtual agent flow 290 that corresponds to theidentified intent, the virtual agent 225 may then generate and transmitthe response 228 to the user via the chat window 274.

As presently recognized, by generating the response 228 based on the set260 of intents, entities, and confidence scores, the in-house NLUservice 222 may efficiently generate the response 228 based on native,customer-designed topic flows associated with the cloud-based platform16, while also enabling efficient actions to be performed in response tothe utterance 226. That is, the customer may build or define the virtualagent flows 290 that are particularly suited to the customer's businessgoals. As a particular example, in response to the third party NLUservice 250 extracting an intent of “change” and an entity of“password,” the in-house NLU service 222 may identify the appropriatevirtual agent flow 290 regarding a password change and instruct thevirtual agent 225 to transmit the response 228 of “what would you likeyour password updated to?” The in-house NLU service 222 may thereforeupdate the password of the user in response to receiving an appropriatepassword input.

Further, it should be noted that the in-house NLU service 222 may alsoperform slot filling with respect to the virtual agent flows 290. Thatis, instead of requesting information that the user may have alreadyprovided in an utterance 226, the in-house NLU service 222 may store orfill suitable intents and/or entities within corresponding fields of thevirtual agent flows 290. Similar to the above example, if the thirdparty NLU service 250 identifies that the utterance 226 includes the“change” intent, the “password” entity, and another entity parameterthat corresponds to a new password, the virtual agent 225 may respond toindicate that the user's password has been updated to the new password.Indeed, enabling the virtual agent 225 to enhance operation of thein-house NLU service 222 with the integrated third party NLU service 250may provide improved and effective conversation flows for end-users, whomay be interested in resolving their requests without interfacing withhuman support agents. Moreover, because certain traditional NLU servicesmay not incorporate slot filling or other desirable features of theuser-definable virtual agent flows 290, the customer may implementbeneficial qualities of both the virtual agent 225 and the integratedthird party NLU service 250 via the presently provided integrated NLUservice system 251.

Keeping the above example of certain components of the cloud-basedplatform 16 and virtual agent 225 in mind, FIG. 6 is a flow chart of aprocess 300 by which the virtual agent 225 may conduct a chatconversation with a user via the third party NLU service 250. The stepsillustrated in the process 300 are meant to facilitate discussion andare not intended to limit the scope of this disclosure, becauseadditional steps may be performed, certain steps may be omitted, and theillustrated steps may be performed in an alternative order or inparallel, where appropriate. The steps illustrated in the process 300are performed by the virtual agent 225, which, as discussed above, maybe supported by the cloud-based platform 16 and communicatively coupledto the third party NLU service 250 within the integrated NLU servicesystem 251. As discussed below, the third party NLU service 250 maygenerally provide external processing power to generate the set 260 ofintents, entities, and/or confidence scores in response to utterances226, thereby supplementing operation of the virtual agent 225.

In the depicted embodiment, the process 300 begins by the virtual agent225 receiving (block 302) an utterance 226 that the user provides to thechat window 274. As mentioned above, the utterance 226 may be a requestfor the virtual agent 225 to provide information or perform actionswithin the cloud-based platform 16. The virtual agent 225 may thenprovide (block 304) the utterance 226 to the third party NLU service 250through the transformation boundary 272. As discussed above, thetransformation boundary 272 may be generated by executing thetransformation script 270 that configures the third party NLU service250 to operate with the virtual agent 225. The transformation boundary272 may include one or more input transformation layers 310 thatcondition the communications sent to the third party NLU service 250, aswell as one or more output transformation layers 312 that condition thecommunications received from the third party NLU service 250.

As mentioned above and described in more detail herein, the virtualagent 225 implements the input transformation layers 310 of thetransformation boundary 272 to perform processing or pre-processing ofthe utterance 226, before providing the utterance 226 to the third partyNLU service 250. For example, the virtual agent 225 may direct theutterance 226 through the input transformation layers 310 to condition,abstract, distill, cleanse, or otherwise adjust the utterance 226 into asuitable conditioned utterance that is an efficient input for the thirdparty NLU service 250. As particular examples, the input transformationlayers 310 implemented by the virtual agent 225 may correct grammar,adjust vocabulary, remove emojis, segment, separate conjunctions,replace slang terms and/or colloquialisms, and/or otherwise conditionthe utterance 226. Indeed, certain third party NLU services 250 may bemore efficient at analyzing short, individual, or single intentutterances 226, such that the input transformation layers 310 areparticularly generated to segment or parse complex utterances 226 intosegments (e.g., intent segments) for more efficient consumption by thecertain third party NLU services 250.

It should be understood that the input transformation layers 310 mayinclude any suitable number of layers, which may each perform one ormultiple conditioning processes. For example, in embodiments in whichthe input transformation layers 310 include a first input layer 320 anda second input layer 322, the first input layer 320 may perform a firstportion of the conditioning that is generic or universal to multiplethird party NLU services 250, while the second input layer 322 performsa second portion of the conditioning that is specific or individualizedto the particular third party NLU service 250 presently integrated withthe virtual agent 225. By performing more universal conditioningprocesses (e.g., correcting grammar) before more specific conditioningprocesses (e.g., segmenting, parsing), the virtual agent 225implementing the input transformation layers 310 may increase anefficiency and/or accuracy of the more specific conditioning processesto improve understanding of the utterance 226.

Moreover, certain embodiments of the transformation script 270 may bedesigned to position the input transformation layers 310 in anysuitable, adjustable order, which may be modified based on a detectedtype or content of the utterance 226. That is, a first conditioningprocess may be performed before a second conditioning process inresponse to determining that the particular content of the utterance 226would be better adapted for consumption by the third party NLU serviceby performing the first conditioning process before the secondconditioning process. In other embodiments, the input transformationlayers 310 may each condition the utterance 226 in parallel with oneanother.

Based on the utterance 226, the third party NLU service 250 may extractone or more intents, extract any entities associated with the intents,and generate confidence scores for the intents and entities, therebygenerating the set 260 of intents, entities, and confidence scoresdiscussed above. Then, the virtual agent 225 may receive (block 340) theset 260 of intents, entities, and confidence scores through the outputtransformation layers 312 of the transformation boundary 272. The outputtransformation layers 312 may condition the set 260 of intents,entities, and confidence scores in any suitable manner for efficientutilization by the virtual agent 225, such as by processing, rewording,de-abstracting, combining, or otherwise processing the set 260. Asmentioned with respect to the input transformation layers 310, theoutput transformation layers 312 may also include any suitable number oflayers, which perform single or multiple conditioning processes andwhich may be ordered in a static or dynamic manner. Indeed, the outputtransformation layers 312 may include a first output layer 342 that isspecific or tailored to the particular third party NLU service 250, aswell as a second output layer 344 that performs more generic oruniversal conditioning of the set 260. In contrast to the inputtransformation layers 310, certain embodiments of the outputtransformation layers 312 may enable the virtual agent 225 to performcertain third party-specific conditioning processes, before performingmore universal or generic conditioning processes, to efficientlytransform the set 260 for utilization by the virtual agent 225. However,it should be understood that each of the input transformation layers 310and the output transformation layers 312 may be a single layer orconditioning process, set forth by the transformation script 270, toadapt or modify communications in a single step.

After the virtual agent 225 receives the conditioned or transformed set260 of intents, entities, and confidence scores through the outputtransformation layers 312, the virtual agent 225 may generate (block350) a response 228 to the utterance 226. In some embodiments, thevirtual agent 225 may generate the response 228 by instructing thein-house NLU service 222 to evaluate the set 260 of intents, entities,and confidence scores and identify intent candidates having at least athreshold confidence score. The virtual agent 225 may therefore identifyan appropriate virtual agent flow 290, as discussed above, toefficiently address identified intents along with any associatedentities. The virtual agent 225 may therefore transmit (block 352) theresponse 228 to the user via the chat window 274. Indeed, as mentionedabove, generating the response 228 in-house or within the virtual agent225 may improve user experience by leveraging the virtual agent flows290 that may have been particularly generated within the cloud-basedplatform 16. Then, as indicated by arrow 354, should the user respondwith a subsequent utterance, the process 300 may begin again.

In some embodiments, the customer may wish to more fully integrate thethird party NLU service 250 within the cloud-based platform 16. Forexample, if a customer has traditionally utilized the third party NLUservice 250 and established customer-specific topic flows within anassociated third party environment, the customer may wish to migrate ortransition the capabilities and trained operation of the third party NLUservice 250 within the client instance 102. To enable the customer totransition to the cloud-based platform 16 in a streamlined manner withlimited frustrations, the present integration techniques also supportoperation of the virtual agent 225 as a proxy to the third party NLUservice 250, as discussed below.

FIG. 7 illustrates a third party NLU service 250 integrated with avirtual agent 225, such that the third party NLU service 250 generatesthe response 228 to the utterance 226. For example and as mentionedabove, the customer may wish to configure fuller integration of thethird party NLU service 250 to generate the responses 228, rather thanproviding the set 260 of intents, entities, and confidence scores. Insuch an embodiment, the virtual agent 225 provides the third party NLUservice 250 with the utterance 226 from the chat window 274. Aspreviously described, the virtual agent 225 may perform some amount ofprocessing on the utterance 226, such as set forth by the inputtransformation layers 310 of the transformation boundary 272. Indeed, asdiscussed above, the transformation boundary 272 may enable the virtualagent 225 to efficiently massage or rework communications between thevirtual agent 225 and the third party NLU service 250, therebyoptimizing or improving operation of the third party NLU service 250. Itshould be understood that some embodiments of the virtual agent 225 may,however, determine that the utterance 226 is in a suitable form withoutpreprocessing and provide the utterance 226 directly to the third partyNLU service 250, such as it was received through the chat window 274.The third party NLU service 250 may then extract intents and entitieswith associated confidence scores (e.g., via the intent and entityeditor 280 and/or the NLU model training 282), and formulate theresponse 228 (e.g., via the language support 284). The response 228 isthen provided to the virtual agent 225 (e.g., via an API). The virtualagent 225 may or may not perform some amount of processing on theresponse generated by the third party NLU service via the transformationboundary 272, before providing the response 228 to the user via the chatwindow 274.

FIG. 8 is a flow chart for a process 400 by which the virtual agent 225may conduct a chat conversation with the third party NLU service 250configured to generate responses to utterances. The steps illustrated inthe process 400 are meant to facilitate discussion and are not intendedto limit the scope of this disclosure, because additional steps may beperformed, certain steps may be omitted, and the illustrated steps maybe performed in an alternative order or in parallel, where appropriate.The steps illustrated in the process 400 are performed by the virtualagent 225, which, as discussed above, may be supported by thecloud-based platform 16 and communicatively coupled to the third partyNLU service 250 within the integrated NLU service system 251.

In the illustrated embodiment, the process 400 begins with the virtualagent 225 receiving (block 402) an utterance 226 that the user providesto the chat window 274. As shown, the transformation script 270 isreceived and run to configure the third party NLU service 250 to operatewith the virtual agent 225. As discussed above with reference to theprocess 300 of FIG. 6, the virtual agent 225 may provide (block 404) theutterance 226 to the third party NLU service 250 through thetransformation boundary 272, which may be established by executing thetransformation script 270. The transformation script 270 is designed tobe run to configure the third party NLU service 250 to operate with thevirtual agent 225, such as by providing instructions for pre-processingthe utterance 226 and mapping intents and entities to language models,the NLU models 224, and so forth.

In some embodiments, the utterance 226 may be accompanied by anindication that the virtual agent 225 expects the third party NLUservice 250 to generate the response 228. However, it should beunderstood that the degree of integration between the virtual agent 225and the third party NLU service 250 may additionally or alternatively beuser-set via a setting associated with the cloud-based platform 16and/or based on an identified type of conversation indicated in theutterance 226. The third party NLU service 250 then extracts one or moreintents and one or more entities from the utterance 226 and generatesconfidence scores for the intents and entities. The third party NLUservice 250 may then go further to generate the response 228 based onthe intents, entities, and confidence scores, such that the virtualagent 225 receives (block 406) the response 228 from the third party NLUservice 250. In some embodiments, the virtual agent 225 may perform someprocessing or pre-processing of the response 228, such as via the one ormore output transformation layers 312 of the transformation boundary 272discussed above. The virtual agent 225 may therefore transmit (block410) the response 228 to the user via the chat window 274. If the userresponds with another utterance 226, the process 400 may begin again, asindicated by arrow 412.

It should be understood that there may be varying degrees of integrationbetween the virtual agent 225 and the third party NLU service 250. Forexample, in some embodiments, the virtual agent 225 may allow the thirdparty NLU service 250 to take certain actions within the instance orcloud-based platform 16 via any suitable APIs. As such, the customer mayconfigure the level of integration between the virtual agent 225 and thethird party NLU service 250 to the desired level. Further, the customermay configure the level of integration between the virtual agent 225 andthe third party NLU service 250 to adjust based on the action or actionsto be performed. For example, FIG. 9 is a flow chart of a process 450for toggling between the third party NLU service 250 generating theresponse 228 and the in-house NLU service 222 generating the response228, based on the type of conversation being conducted. The stepsillustrated in the process 450 are meant to facilitate discussion andare not intended to limit the scope of this disclosure, becauseadditional steps may be performed, certain steps may be omitted, and theillustrated steps may be performed in an alternative order or inparallel, where appropriate. The steps illustrated in the process 450are performed by the virtual agent 225, which, as discussed above, maybe supported by the cloud-based platform 16 and communicatively coupledto the third party NLU service 250 within the integrated NLU servicesystem 251.

As shown, the process 450 may begin with the virtual agent 225 receiving(block 452) an utterance 226 and performing some processing orpreprocessing of the utterance to identify (block 454) the type ofconversation taking place. The virtual agent 225 then determines (block456) whether the third party NLU service 250 is to generate the response228 for the identified type of conversation. For example, the integratedNLU service system 251 may be configured such that the third party NLUservice 250 generates the responses 228 for simpler conversations, suchas exchanging pleasantries, for which access to certain types of data isnot needed.

If the third party NLU service 250 is to generate the response, thevirtual agent 225 provides (block 460) the third party NLU service 250with the utterance 226, such as through the one or more inputtransformation layers 310 discussed above. The third party NLU service250 then extracts the set 260 of intents and entities, generatesconfidence scores, and then formulates a response 228. The virtual agent225 may therefore receive (block 462) the response 228. The virtualagent 225 may or may not perform some amount of processing on theresponse 228 generated by the third party NLU service 250 via theinstructions included in the one or more output transformation layers312, before transmitting (block 464) the response to the user via thechat window 274 discussed above.

If the third party NLU service 250 is not to generate the response 228,the virtual agent 225 provides (block 470) the third party NLU service250 with the utterance 226. The third party NLU service 250 extracts oneor more intents and one or more entities from the utterance 226 andgenerates confidence scores for the intents and entities. The virtualagent 225 may therefore receive (block 472) the set 260 of intents,entities, and confidence scores from the third party NLU service 250. Insome embodiments, the set 260 is conditioned for consumption by thevirtual agent 225 via the one or more output transformation layers 312discussed above. The virtual agent 225 then generates (block 474) theresponse 228 to the utterance 226 based on the set 260 of intents,entities, and confidence scores received from the third party NLUservice 250. The virtual agent 225 may therefore transmit (block 464)the response 228 to user via the chat window 274. If the user respondswith another utterance, the process 450 may begin again.

FIG. 10 is a simulated screenshot of an embodiment of a graphical userinterface (GUI) 490 by which a customer may select a third party NLUservice 250 to integrate with the virtual agent 225 and form theintegrated NLU service system 251 discussed above. It may be appreciatedthat the GUI 490, as well as other GUIs discussed below, may be hostedby the client instance 102 and accessed via a web browser application ofthe client device 20D. Additionally, it may be noted that the datareceived and presented by the GUI 490 may be stored in one or moresuitable database tables of the database server 104.

Within the GUI 490 illustrated in FIG. 10, the customer may select a“NLU API” field 492, which opens a drop-down menu from which thecustomer may select a third party NLU service 250 from a predefined listof different NLU providers (e.g., PARLO, IBM WATSON, MICROSOFT LUIS,GOOGLE BERT, AMAZON ALEXA). Upon selection, the API associated with theselected third party NLU service 250 may be used to facilitatecommunication between the virtual agent 225 and the third party NLUservice 250. That is, the third party NLU service 250 indicated by the“NLU API” field 492 will be provided received user utterances, alongwith one or more NLU models 224, in order to generate the scored set ofintents and entities, as discussed above. If the desired third party NLUservice 250 is shown in the drop down menu, a transformation script 270may be provided for integrating the virtual agent 225 and the thirdparty NLU service 250. If the desired third party NLU service 250 is notlisted in the drop-down menu, the customer may select “other” and thenprovide his or her own transformation script 270 for efficientlyintegrating the virtual agent 225 and the third party NLU service 250.Though not shown in FIG. 10, in some embodiments, the GUI 490 may allowfor inputs specifying the degree of integration between the virtualagent 225 and the third party NLU service 250.

The disclosed subject matter includes techniques for integrating a thirdparty NLU service in to a virtual agent that utilizes an in-house NLUservice. The third party NLU service may communicate with the virtualagent via an API. A transformation script may be used to configure thethird party NLU service to work with the virtual agent, such as byestablishing a transformation boundary that reworks or smoothscommunications between the third party NLU service and the virtualagent. As such, the virtual agent may receive an utterance from a uservia a chat window, and then condition the utterance for analysis by thethird party NLU service via the transformation boundary. The virtualagent provides the utterance to the third party NLU service. In someembodiments, a type of reply that the third party NLU service returns tothe virtual agent depends on the degree on integration between the thirdparty NLU service and the virtual agent. For example, in someembodiments, the third party NLU service may return intents, entities,and confidence scores to the virtual agent. In other embodiments, thethird party NLU service may go as far as generating a response and/ortaking actions within the cloud-based platform via the API. However, ineither case, the intents, entities, and confidence scores, or theresponse, may be adjusted for utilization by the virtual agent via thetransformation boundary. The virtual agent then provides a response tothe user via the chat window, thereby cohesively leveraging processingpower or features of the third party NLU service with the virtual agentwithin an integrated NLU service system to deliver improved end-usersatisfaction.

The specific embodiments described above have been shown by way ofexample, and it should be understood that these embodiments may besusceptible to various modifications and alternative forms. It should befurther understood that the claims are not intended to be limited to theparticular forms disclosed, but rather to cover all modifications,equivalents, and alternatives falling within the spirit and scope ofthis disclosure.

The techniques presented and claimed herein are referenced and appliedto material objects and concrete examples of a practical nature thatdemonstrably improve the present technical field and, as such, are notabstract, intangible or purely theoretical. Further, if any claimsappended to the end of this specification contain one or more elementsdesignated as “means for [perform]ing [a function] . . . ” or “step for[perform]ing [a function] . . . ”, it is intended that such elements areto be interpreted under 35 U.S.C. 112(f). However, for any claimscontaining elements designated in any other manner, it is intended thatsuch elements are not to be interpreted under 35 U.S.C. 112(f).

1. An integrated natural language understanding (NLU) system,comprising: a processor; and a memory, the memory storing instructionsthat, when executed by the processor, cause the processor to operate avirtual agent to perform operations comprising: receiving an utteranceprovided via a chat session; conditioning, via a transformationboundary, the utterance to form a conditioned utterance; providing, viaan application programming interface (API), the conditioned utterance toa third party natural language understanding (NLU) service; receiving,via the API, a set of one or more intents, one or more entities, and oneor more confidence scores generated by the third party NLU service basedon the conditioned utterance; generating a response to the utterancebased on the set; and transmitting the response for display within thechat session.
 2. The system of claim 1, wherein the transformationboundary is configured to condition the utterance by abstracting orcleansing the utterance.
 3. The system of claim 1, wherein thetransformation boundary is configured to condition the utterance byparsing the utterance into segments consumable by the third party NLUservice.
 4. The system of claim 1, wherein the operations compriseconditioning, via the transformation boundary, the set of one or moreintents, one or more entities, and one or more confidence scores beforegenerating the response based on the set.
 5. The system of claim 4,wherein the transformation boundary is configured to condition the setof one or more intents, one or more entities, and one or more confidencescores by deabstracting the set.
 6. The system of claim 1, wherein theresponse is generated based on a virtual agent flow associated with thevirtual agent, and wherein the virtual agent is native to a cloud-basedplatform that hosts the chat session and that does not host the thirdparty NLU service.
 7. The system of claim 1, wherein the operationscomprise: running a transformation script, wherein the transformationscript configures the third party NLU service for use with the virtualagent by establishing the transformation boundary.
 8. The system ofclaim 7, wherein the transformation script defines how the one or moreintents and the one or more entities of the set are mapped to a NLUmodel.
 9. The system of claim 1, wherein the operations comprise:identifying a type of conversation associated with a subsequentutterance; determining that the type of conversation is to be addressedwith an in-house NLU service; providing the subsequent utterance to thein-house NLU service; receiving a subsequent set of one or more intents,one or more entities, and one or more confidence scores generated by thein-house NLU service based on the subsequent utterance; generating asubsequent response to the subsequent utterance based on the subsequentset; and transmitting the subsequent response for display within thechat session.
 10. The system of claim 1, wherein the operations comprisegenerating a graphical user interface (GUI) configured to receive aselection of the third party NLU service from a plurality of third partyNLU services.
 11. A non-transitory, computer-readable medium storinginstructions executable by at least one processor of a cloud-basedplatform, the instructions comprising instructions to operate a virtualagent to perform operations comprising: receiving a user utterance froma client device; conditioning the user utterance via a transformationboundary established by a transformation script; providing theconditioned user utterance to a third party natural languageunderstanding (NLU) service, wherein the third party NLU service isdistinct from the cloud-based platform that hosts the virtual agent;receiving, from the third party NLU service, an analysis of theconditioned user utterance, wherein the analysis comprises: a scored setof intents and entities derived from the conditioned user utterance; ora response generated based on the scored set of intents and entities;and responding to the user utterance by: generating and providing theresponse when the scored set of intents and entities is received fromthe third party NLU service; and forwarding the response generated bythe third party NLU service when the response is generated by the thirdparty NLU service.
 12. The medium of claim 11, wherein thetransformation boundary is configured to implement a universalconditioning process followed by a third party-specific conditioningprocess on the user utterance.
 13. The medium of claim 11, wherein theoperations comprise conditioning the analysis from the third party NLUservice via the transformation boundary before providing or forwardingthe response.
 14. The medium of claim 13, wherein the transformationboundary is configured to implement a third party-specific conditioningprocess followed by a universal conditioning process on the analysis.15. The medium of claim 11, wherein the operations comprise providing agraphical user interface (GUI) configured to receive user selection of atype of the analysis that the third party NLU service provides to thevirtual agent.
 16. The medium of claim 11, wherein, when the analysiscomprises the response, the operations comprise enabling the third partyNLU service to call an application programming interface (API) of thecloud-based platform to perform an action in the cloud-based platform.17. A method of operating a virtual agent integrated with a third partynatural language understanding (NLU) service, comprising: receiving anutterance through a chat session with a client device; performing atleast one input conditioning process on the utterance; providing theconditioned utterance to a third party NLU service via an applicationprogramming interface (API); receiving, from the NLU service, a scoredset of intents and entities derived from the conditioned utterance;performing at least one output conditioning process on the set;generating a response to the utterance based on the conditioned set; andtransmitting the response for display within the chat session.
 18. Themethod of claim 17, comprising executing a transformation script toestablish the at least one input conditioning process and the at leastone output conditioning process as a transformation boundary forcommunications between the virtual agent and the third party NLUservice.
 19. The method of claim 17, wherein performing the at least oninput conditioning process comprises cleansing, vocabulary adjustment,or abstraction of the utterance.
 20. The method of claim 17, whereingenerating the response comprises: identifying an intent within thescored set of intents and entities that is associated with at least athreshold confidence score; identifying a virtual agent flow associatedwith the intent; and utilizing the virtual agent flow to generate theresponse.